const axios = require('axios');

// 测试点赞功能
async function testLike() {
  const testData = {
    userId: 'user1',
    dynamicId: 'd1'
  };

  try {
    console.log('🧪 开始测试点赞功能...');
    console.log('📤 发送点赞请求:', testData);
    
    const response = await axios.post('http://localhost:3000/api/dynamic/like', testData);
    
    console.log('📥 点赞响应:', response.data);
    
    if (response.data.success) {
      console.log('✅ 点赞测试成功！');
      console.log('👍 点赞状态:', response.data.data?.liked ? '已点赞' : '已取消点赞');
    } else {
      console.log('❌ 点赞测试失败:', response.data.message);
    }
    
  } catch (error) {
    console.error('❌ 点赞测试出错:', error.response?.data || error.message);
  }
}

// 测试获取动态列表（包含点赞状态）
async function testGetDynamics() {
  const userId = 'user1';

  try {
    console.log('\n🧪 开始测试获取动态列表...');
    console.log('📤 获取用户动态，用户ID:', userId);
    
    const response = await axios.get(`http://localhost:3000/api/dynamic/list/${userId}`);
    
    console.log('📥 动态列表响应:', response.data);
    
    if (response.data.success) {
      console.log('✅ 获取动态列表成功！');
      console.log('📋 动态数量:', response.data.data?.length || 0);
      
      // 显示每个动态的点赞状态
      response.data.data?.forEach((dynamic, index) => {
        console.log(`动态${index + 1}: ID=${dynamic.id}, 点赞数=${dynamic.like_count}, 已点赞=${dynamic.is_liked ? '是' : '否'}`);
      });
    } else {
      console.log('❌ 获取动态列表失败:', response.data.message);
    }
    
  } catch (error) {
    console.error('❌ 获取动态列表出错:', error.response?.data || error.message);
  }
}

// 运行测试
async function runTests() {
  console.log('🚀 开始运行ChaTime点赞功能测试...\n');
  
  await testGetDynamics(); // 先获取动态列表
  await testLike(); // 测试点赞
  await testGetDynamics(); // 再次获取动态列表查看变化
  
  console.log('\n🏁 测试完成！');
}

// 如果直接运行此脚本
if (require.main === module) {
  runTests();
}

module.exports = { testLike, testGetDynamics }; 